www.gusucode.com > XerCMS 携云PHP企业建站程序 v2015PHP源码程序 > XerCMS 携云PHP企业建站程序 v2015/XerCMS_v20150724/XerCMS_v20150724/XerCMS/Utils/validate/Valid_config.php

    <?php
/**
 * @name     XERCMS
 * @author   Arno <XerCMS@163.com> [QQ:1328013]
 * @version  1.0.0
 * @link     http://www.XerCMS.com
 */

!defined('XERCMS') && exit('Access Denied');

class Valid_config extends Valid
{	 
     var $data  = '';

     public function check($data) {
          $this->data = $data;
          switch($data['file']) {
               case 'kernel':
                    return $this->kernel();
               break;
               case 'globals': 
                    if(in_array($this->data['tag'],array('CYK','area','uid','nick','group','member'))) {
                         $this->setError('无法创建,请修改标签!');
                         return false;
                    }               
                    return ($this->checkfile($data['file']) && $this->checkTag($this->data['tag'])) ? true : false;              
               break;             
               default:
                    return ($this->checkfile($data['file']) && $this->checkTag($this->data['tag'])) ? true : false;
               break;
          }
     }
     
     public function checkfile($name) {
		if(preg_match('/([^0-9a-z\_\:]+)/i',$name)) {
			$this->setError('配置文件不正确!');  
               return false;
          }
          return true;
     }
     
     public function kernel() {
          
          if(!$this->checkTag($this->data['tag'])) {
               return false;               
          }
		switch($this->data['tag']) {
               case 'urlmode':
                    if(!in_array($this->data['content'],array('dynamic','static'))) {
                         $this->setError('链接模式错误!');  
                         return false;
                    }
               break;
               case 'expire':
                    if(!$this->isNumber($this->data['content']) || $this->data['content'] < 0) {
                         $this->setError('缓存时间须为正确的整数型时间!');  
                         return false;
                    }
               break; 
               case 'commentaudit':
                    if(!in_array($this->data['content'],array('0','1'))) {
                         $this->setError('请正确设置是否允许匿名评论!');  
                         return false;
                    }
               break; 
               case 'gzip':
                    if(!in_array($this->data['content'],array('0','1'))) {
                         $this->setError('请正确设置是否开启Gzip传输!');  
                         return false;
                    }
               break; 
               case 'state':
                    if(!in_array($this->data['content'],array('normal','close'))) {
                         $this->setError('请正确设置网站状态!');  
                         return false;
                    }
               break;                
               
          }
          return true;
     }
     
     public function checkTag($tag) {
		if(preg_match('/([^0-9a-z\_]+)/i',$tag)) {
			$this->setError('标签命名不正确!');  
               return false;
          }
          return true;
     }
}
?>